home *** CD-ROM | disk | FTP | other *** search
- unit Unit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- OleCtrls, SHDocVw, StdCtrls, Grids, DBGrids, Db, DBTables, ComCtrls,
- MSXML2_TLB, ExtCtrls;
-
- type
- TForm1 = class(TForm)
- dsEmployee: TDataSource;
- tblEmployee: TTable;
- tblEmployeeEmpNo: TIntegerField;
- tblEmployeeLastName: TStringField;
- tblEmployeeFirstName: TStringField;
- tblEmployeePhoneExt: TStringField;
- tblEmployeeHireDate: TDateTimeField;
- tblEmployeeSalary: TFloatField;
- PageControl1: TPageControl;
- TabSheet1: TTabSheet;
- TabSheet3: TTabSheet;
- Label3: TLabel;
- wbXML: TWebBrowser;
- btnConvert: TButton;
- TabSheet5: TTabSheet;
- edtPattern: TEdit;
- btnApply: TButton;
- rgPattern: TRadioGroup;
- mResults: TMemo;
- lblCount: TLabel;
- Label5: TLabel;
- mXML: TMemo;
- Label1: TLabel;
- Label6: TLabel;
- TabSheet2: TTabSheet;
- Transform: TButton;
- memoTransform: TMemo;
- Panel1: TPanel;
- wbMSXML: TWebBrowser;
- procedure btnConvertClick(Sender: TObject);
- procedure btnOpenClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure btnApplyClick(Sender: TObject);
- procedure rgPatternClick(Sender: TObject);
- procedure TransformClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1 : TForm1;
- g_AppPath : String;
- g_xmlCBCV : IXMLDOMDocument;
- g_xmlDoc : IXMLDOMDocument;
- g_xmlResult : IXMLDOMNode;
-
- implementation
-
- {$R *.DFM}
-
- (* ************************************************************************** *)
-
- procedure TForm1.btnConvertClick(Sender: TObject);
- var f : TextFile;
- i : Integer;
-
- begin
- tblEmployee.Active:=True;
-
- i := 0;
-
- AssignFile(f, g_AppPath + '\employees.xml');
- Rewrite(f);
- writeln(f, '<?xml version="1.0"?>');
-
- writeln(f, '<employees>');
- writeln(f, '');
-
- with tblEmployee do begin
- First;
- DisableControls;
- while not eof do begin
- write(f, '<employee emp_no="');
- write(f, FieldByName('EMPNO').AsString);
- writeln(f, '">');
-
- write(f, '<emp_lastname>');
- write(f, FieldByName('LASTNAME').AsString);
- write(f, '</emp_lastname>');
-
- write(f, '<emp_firstname>');
- write(f, FieldByName('FIRSTNAME').AsString);
- write(f, '</emp_firstname>');
-
- write(f, '<emp_phoneext>');
- write(f, FieldByName('PHONEEXT').AsString);
- write(f, '</emp_phoneext>');
-
- // For every other employee, alternate the currency...
- // ..for the sake of demonstration...
- if i mod 2 = 0 then
- write(f, '<emp_salary currency="UKP">')
- else
- write(f, '<emp_salary currency="USD">');
-
- write(f, FieldByName('Salary').AsString);
- writeln(f, '</emp_salary>');
-
- writeln(f, '</employee>');
- writeln(f, '');
- next;
- i:=i+1;
- end;
- EnableControls;
- end;
-
- writeln(f, '</employees>');
- CloseFile(f);
-
- mXML.Lines.LoadFromFile(g_AppPath + 'employees.xml');
- wbXML.Navigate(g_AppPath + 'employees.xml');
-
- g_xmlDoc.LoadXML(mXML.Text);
-
- tblEmployee.Active:=False;
- end;
-
- (* ************************************************************************** *)
-
- procedure TForm1.btnOpenClick(Sender: TObject);
- begin
- btnConvert.Enabled:=tblEmployee.Active;
- end;
-
- (* ************************************************************************** *)
-
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- g_xmlDoc := CoDOMDocument.Create;
- end;
-
- (* ************************************************************************** *)
-
- procedure TForm1.btnApplyClick(Sender: TObject);
- var
- xmlResult : IXMLDOMNodeList;
- i : Integer;
- begin
- XMLResult:=g_xmlDoc.selectNodes (edtPattern.Text);
-
- mResults.Text:='';
-
- lblCount.Caption:= IntToStr(XMLResult.Length) + ' item(s) returned';
-
- for i:=0 to XMLResult.Length-1 do
- begin
- mResults.Lines.Add(XMLResult.Item[i].XML);
- end;
- end;
-
- (* ************************************************************************** *)
-
- procedure TForm1.rgPatternClick(Sender: TObject);
- begin
- edtPattern.Text:=rgPattern.Items[rgPattern.ItemIndex];
- btnApplyClick(Sender);
- end;
-
- (* ************************************************************************** *)
-
- procedure TForm1.TransformClick(Sender: TObject);
- var xmlEmployees,
- xslStyle : IXMLDOMDocument;
-
- begin
- xmlEmployees := CoDOMDocument.Create;
- xslStyle := CoDOMDocument.Create;
-
- xmlEmployees.load('employees.xml');
- xslStyle.load('empuksna.xsl');
-
- memoTransform.Text := xmlEmployees.transformNode(xslStyle);
- memoTransform.Lines.SaveToFile('msxml.htm');
-
- wbMSXML.Navigate(g_AppPath+'msxml.htm');
- end;
-
- initialization
- g_AppPath:=ExtractFilePath(Application.ExeName);
-
-
- end.
-